在我們開始介紹Elasticsearch的組成之前,如果不來介紹一下ELK系統好像真的說不過去XD。
以下是ELK系統的簡介圖:
Beats:
Beats是輕量級的服務,Beats家族具備許多成員:Filebeat、Packetbeat、Metricbeat、Heartbeat、Auditbeat、Winlogbeat、Functionbeat。主要的功能為收集各式不同的數據,並發送到ES或是Logstash進行其他處理
Logstash:
Logstash則是對資訊進行處理,舉凡像是日誌檔案或是ip以及地理資訊都能處理。主要由input、filter與output組成,而最重要的也就是中間的filter可以進行資料的篩選,並且有許多插件如grok能很好的處理資訊。
Elasticsearch:
Elasticsearch則是將輸入的資料進行儲存並提供查詢等功能,而這部分也就是這個文章系列的重點,之後會再慢慢介紹。
這邊題外話:
當初因為在業務需求上我不需要使用複雜的資料篩選,因此直接對Nginx產出的日誌進行format的調整,並且使用輕量化的filebeat來讀取並輸入,並在輸入時也將message作拆解再存入索引中,但是這樣也導致無法匹配一些預設好的一些索引模板,在可視化時需要做一些額外的處理,甚至也遇到時間單位的坑。因為ES有太多功能是有相關連的,因此可以熟習整個流程後再根據自己的需求再做調整。
Kibana:
Kibana其實也是相當重要的一部分,即使不使用discover或是dashboard去看相關的可視化圖表,也一定多少會使用dev tools來進行邏輯的審視以及去觀察初步的查詢結果等等。這部分不是重點因此也不多著墨,等有資料後也可以自己嘗試用Kibana來做許多炫砲的圖表中來,比較可惜的部分是機器學習這部分是需要收費的。
明天會開始介紹ES的組成架構,對於後續了解ES的運作本身會有一定的幫助